﻿@* Quitar esta sección si se utilizan agrupaciones *@
@section Scripts {
    <script src="~/Scripts/jquery.validate.min.js"></script>
    <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
}

@{
    Layout = "~/_SiteLayout.cshtml";
    Page.Title = "Registrar grupo electoral";

    if (!WebSecurity.IsAuthenticated)
    {
        Response.Redirect("../Account/login.cshtml");        
    }

    // Inicializar variables de página generales
    var Txt_grupo_electoral = "";
    var Cbo_estado = "";

    // Validación de la instalación
    Validation.RequireField("Txt_grupo_electoral", "Debe especificar un nombre para el grupo electoral");
    Validation.RequireField("Cbo_estado", "Debe seleccionar un estado para el grupo electoral");
    Validation.Add("Txt_grupo_electoral",
        Validator.StringLength(
            maxLength: 100,
            minLength: 5,
            errorMessage: "El Grupo electoral debe tener al menos cinco caracteres"));

    // Si esta es una solicitud  POST , valide y procese los datos
    if (IsPost) {
        AntiForgery.Validate();
        Txt_grupo_electoral = Request.Form["Txt_grupo_electoral"];
        Cbo_estado = Request.Form["Cbo_estado"];

        if (Cbo_estado.IsEmpty() || Cbo_estado.ToString().Trim() == "0")
        {
            ModelState.AddError("Cbo_estado", "Seleccione el estado para grupo electoral");
        }

        if (Validation.IsValid() && ModelState.IsValid)
        {            
            bool Val_estado = false;
            if (Cbo_estado == "1")
            {
                Val_estado = true;
            }

            GrupoElectoral Obj_grupo = new GrupoElectoral();
            Obj_grupo.ObjGrupoElectoral.nombre = Txt_grupo_electoral;
            Obj_grupo.ObjGrupoElectoral.estado = Val_estado;

            var mylista = Obj_grupo.filtrar(1);

            if (mylista == null || mylista.Count == 0)
            {
                Obj_grupo.crear();                            
                Response.Redirect("ConsultarGrupoElectoral.cshtml");
            }
            else {
                ModelState.AddFormError("El Grupo electoral ya existe en el sistema.");
            }
        }        
}
}

@if (!User.IsInRole("Admin"))
{
    ModelState.AddError("errorGeneral", "El usuario: " + User.Identity.Name + " NO tiene permisos sobre este formulario.");
    @Html.ValidationMessage("errorGeneral")
}
else
{  
        <form method="post">
            @AntiForgery.GetHtml()
            @* Si existe al menos un error de validación, informar al usuario *@
            @Html.ValidationSummary("No se creó el grupo electoral. Corrija los errores e inténtelo de nuevo.", excludeFieldErrors: true, htmlAttributes: null)

            <fieldset>
                <legend>Formulario de registro Grupo electoral</legend>
                <ol>
                    <li class="email">
                        <label for="Txt_grupo_electoral" @if(!ModelState.IsValidField("Txt_grupo_electoral")){<text> class="error-label" </text>       }>Grupo electoral</label>
                        <input type="text" id="Txt_grupo_electoral" name="Txt_grupo_electoral" maxlength="100" value="" @Validation.For("Txt_grupo_electoral") />
                        @* Escribir los errores de validación del correo electrónico en la página *@
                        @Html.ValidationMessage("Txt_grupo_electoral")
                    </li>
                    <li class="email">
                        <label for="Cbo_estado" @if(!ModelState.IsValidField("Cbo_estado")){<text> class="error-label" </text>       }>Estado</label>
                        <select id="Cbo_estado" name="Cbo_estado" @Validation.For("Cbo_estado")>
                            <option value="0">Seleccione</option>
                            <option value="1">Activo</option>
                            <option value="-1">Inactivo</option>
                        </select>
                        @* Escribir los errores de validación del correo electrónico en la página *@
                        @Html.ValidationMessage("Cbo_estado")
                    </li>
                </ol>
                <input type="submit" value="Guardar" />
            </fieldset>
        </form>
}
